package cn.tedu.knows.kafka.vo;

import com.google.gson.Gson;
import lombok.extern.slf4j.Slf4j;
import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import sun.security.jgss.GSSCaller;

import javax.annotation.Resource;

@Component
@Slf4j
public class Producer {


    //注入SpringKafka提供的操作kafka的对象
    //KafkaTemplate<[话题名称],[发送的消息]>
    @Resource
    private KafkaTemplate<String,String> kafkaTemplate;

    //发送信息的方法中需要将java对象转换为json字符串
    //下面这个类对象就有这个功能
    private Gson gson=new Gson();

    int i=1;
    //编写一个方法,每隔10秒向kafka发送一个消息
    @Scheduled(fixedRate = 1000*10)
    public void sendMessage(){
        //这个方法会每隔10秒运行一次
        Message message=new Message()
                .setId(i++)
                .setContent("你好,我是一个消息")
                .setTime(System.currentTimeMillis());
        //先将Message转换为json字符串
        String json=gson.toJson(message);
        log.debug("发送消息:{}",json);
        //发送信息到kafka
        kafkaTemplate.send("myTopic",json);
    }



}
